﻿Imports QLBH.GlobalClass
Imports GVariable.Variable
Imports BUS
Imports DTO

Public Class uerNVDSNhanVien
    Private nVienBus As New CBusiNhanVien()
    Private diaChiBus As New CBusiDiaChi()
    Private fNVCTiet As New frmNVChiTiet
    Private intRowIndex As Integer = -1 ' lưu chỉ số của dòng đuợc chọn
    Private nVienDto As New CNhanVien()

    Private Sub btnThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThem.Click
        fNVCTiet.txtMaNV.Text = nVienBus.TaoMaNhanVien("NV", "maNV", "nhanvien", 5)
        fNVCTiet.txtMaNV.Enabled = False
        fNVCTiet.txtMaNV.ForeColor = Color.Black
        fNVCTiet.btnNVDoiMK.Enabled = False
        fNVCTiet.btnNVSua.Enabled = False
        fNVCTiet.btnNVXoa.Enabled = False
        fNVCTiet.btnNVThem.Enabled = False
        fNVCTiet.btnNVTimKiem.Enabled = False
        fNVCTiet.ShowDialog()
    End Sub
    'Đọc dữ liệu vào uerDSNV 
    Private Sub DocBangNhanVien()
        dgvMainNhanVien.ClearSelection()
        dgvMainNhanVien.ClearSelection() 'bỏ chọn tất cả
        Dim lNVien As List(Of CNhanVien)
        lNVien = nVienBus.DocBangNhanVien()
        ChuyenListVaoDataGrid(lNVien)
        DoDuLieuVaoCBoTimKiem(lNVien)
    End Sub
    'Đổ dữ liệu từ list vào datagrid view
    Private Sub ChuyenListVaoDataGrid(ByVal listNV As List(Of CNhanVien))
        Dim dgvDSNV = dgvMainNhanVien
        dgvDSNV.Rows.Clear()
        For i = 0 To listNV.Count - 1
            dgvDSNV.Rows.Add()
            dgvDSNV.Rows(i).Cells("MaNV").Value = listNV(i).maNV
            dgvDSNV.Rows(i).Cells("HoTen").Value = listNV(i).hoTenNV
            dgvDSNV.Rows(i).Cells("ChucVu").Value = listNV(i).maLoaiNV.ToString() 'viet ham lay loai nhan vien
            dgvDSNV.Rows(i).Cells("NgaySinh").Value = listNV(i).ngaySinh.ToShortDateString()
            dgvDSNV.Rows(i).Cells("GioiTinh").Value = listNV(i).gioiTinh
            dgvDSNV.Rows(i).Cells("DienThoai").Value = listNV(i).dienThoai
            dgvDSNV.Rows(i).Cells("Email").Value = listNV(i).email
            'dgvDSNV.Rows(i).Cells("DiaChi").Value = listNV(i).
            dgvDSNV.Rows(i).Cells("Huyen").Value = diaChiBus.LayTenHuyen(listNV(i).huyen, listNV(i).tinh) 'listNV(i).huyen 'viet ham lay huyen
            dgvDSNV.Rows(i).Cells("Tinh").Value = diaChiBus.LayTenTinh(listNV(i).tinh) ' viet ham lay tinh
            dgvDSNV.Rows(i).Cells("Luong").Value = listNV(i).luong
            dgvDSNV.Rows(i).Cells("GhiChu").Value = listNV(i).ghiChu

        Next
    End Sub
    'Bật tắt button trong uerCtrDSNV
    Private Sub BatTatBtnUerDSNV(ByVal flag As Boolean)
        btnXoa.Enabled = flag
        btnXem.Enabled = flag
    End Sub
    'Đọc dữ liệu đổ vào cbTìmKIếm
    Private Sub DoDuLieuVaoCBoTimKiem(ByVal dtNVien As List(Of CNhanVien))
        cbbTenNhanVien.Items.Clear()
        For i = 0 To dtNVien.Count - 1
            Dim tenNV As String = dtNVien(i).hoTenNV
            cbbTenNhanVien.Items.Add(tenNV)
        Next
        cbbTenNhanVien.Items.Add("Tất cả")
    End Sub
    'Tìm nhân viên theo tên
    Private Sub cbbTenNhanVien_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbbTenNhanVien.TextChanged
        Dim strTen As String
        strTen = cbbTenNhanVien.Text
        Dim lNVien As New List(Of CNhanVien)
        lNVien = nVienBus.TimKiem("", strTen)
        ChuyenListVaoDataGrid(lNVien)
    End Sub
    'Lấy mã nhân viên khi chọn
    Private Sub dgvMainNhanVien_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvMainNhanVien.CellClick
        intRowIndex = e.RowIndex
        If (intRowIndex < dgvMainNhanVien.Rows.Count - 1 And intRowIndex >= 0) Then
            nVienDto.maNV = dgvMainNhanVien.Rows(intRowIndex).Cells("MaNV").Value.ToString()
            nVienDto.hoTenNV = dgvMainNhanVien.Rows(intRowIndex).Cells("HoTen").Value.ToString()
            BatTatBtnUerDSNV(True)
        Else
            BatTatBtnUerDSNV(False)
        End If
    End Sub

    Private Sub btnXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoa.Click
        If nVienDto.maNV <> strMaNVHienTai Then
            If (nVienDto.maNV <> "") Then
                Dim result As DialogResult
                result = MessageBox.Show("Bạn có muốn xóa nhân viên " & nVienDto.hoTenNV & ".", "Cảnh Báo!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
                If result = DialogResult.Yes Then
                    nVienBus.XoaNhanVien(nVienDto.maNV)
                    If (intKTTruyVan = 1) Then
                        MessageBox.Show("Xóa thành công.", "Thông Báo!", MessageBoxButtons.OK, MessageBoxIcon.Information)
                        DocBangNhanVien()
                    Else
                        MessageBox.Show("Không thể xóa. Lỗi: kết nối CSDL.", "Thông Báo!", MessageBoxButtons.OK, MessageBoxIcon.Error)
                    End If
                End If
            Else
                MessageBox.Show("Vui lòng chọn nhân viên muốn xóa", "Thông Báo!", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        Else
            MessageBox.Show("Không thể xóa. Bạn đang trong hệ thống.", "Thông Báo!", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
        dgvMainNhanVien.ClearSelection()
        intRowIndex = -1
        nVienDto = New CNhanVien()
    End Sub
End Class
